package com.bawei.mall.product.service.impl;

import java.util.List;

import com.bawei.common.core.utils.DateUtils;
import com.bawei.common.security.utils.SecurityUtils;
import com.bawei.mall.product.domain.*;
import com.bawei.mall.product.domain.reponse.ProductHomeShowResponse;
import com.bawei.mall.product.mapper.MallProductInfoMapper;
import com.bawei.mall.product.service.IMallProductAdvertiseInfoService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.bawei.mall.product.mapper.MallProductBrandInfoMapper;
import com.bawei.mall.product.service.IMallProductBrandInfoService;

/**
 * 商品品牌Service业务层处理
 *
 * @author DongZeLiang
 * @date 2022-09-15
 */
@Service
public class MallProductBrandInfoServiceImpl implements IMallProductBrandInfoService
{
    @Autowired
    private MallProductBrandInfoMapper mallProductBrandInfoMapper;

    @Autowired
    private IMallProductAdvertiseInfoService mallProductAdvertiseInfoService;

    @Autowired
    private MallProductInfoMapper mallProductInfoMapper;

    /**
     * 查询商品品牌
     *
     * @param id 商品品牌主键
     * @return 商品品牌
     */
    @Override
    public MallProductBrandInfo selectMallProductBrandInfoById(Long id)
    {
        return mallProductBrandInfoMapper.selectMallProductBrandInfoById(id);
    }

    /**
     * 查询商品品牌列表
     *
     * @param mallProductBrandInfo 商品品牌
     * @return 商品品牌
     */
    @Override
    public List<MallProductBrandInfo> selectMallProductBrandInfoList(MallProductBrandInfo mallProductBrandInfo)
    {
        return mallProductBrandInfoMapper.selectMallProductBrandInfoList(mallProductBrandInfo);
    }

    /**
     * 新增商品品牌
     *
     * @param mallProductBrandInfo 商品品牌
     * @return 结果
     */
    @Override
    public int insertMallProductBrandInfo(MallProductBrandInfo mallProductBrandInfo)
    {
        mallProductBrandInfo.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
        mallProductBrandInfo.setCreateTime(DateUtils.getNowDate());
        return mallProductBrandInfoMapper.insertMallProductBrandInfo(mallProductBrandInfo);
    }

    /**
     * 修改商品品牌
     *
     * @param mallProductBrandInfo 商品品牌
     * @return 结果
     */
    @Override
    public int updateMallProductBrandInfo(MallProductBrandInfo mallProductBrandInfo)
    {
        mallProductBrandInfo.setUpdateTime(DateUtils.getNowDate());
        return mallProductBrandInfoMapper.updateMallProductBrandInfo(mallProductBrandInfo);
    }

    /**
     * 批量删除商品品牌
     *
     * @param ids 需要删除的商品品牌主键
     * @return 结果
     */
    @Override
    public int deleteMallProductBrandInfoByIds(Long[] ids)
    {
        return mallProductBrandInfoMapper.deleteMallProductBrandInfoByIds(ids);
    }

    /**
     * 删除商品品牌信息
     *
     * @param id 商品品牌主键
     * @return 结果
     */
    @Override
    public int deleteMallProductBrandInfoById(Long id)
    {
        return mallProductBrandInfoMapper.deleteMallProductBrandInfoById(id);
    }



    /**
     * 商品首页品牌
     * @return
     */
    @Override
    public ProductHomeShowResponse fetchContent() {
        List<MallProductAdvertiseInfo> mallProductAdvertiseInfos = mallProductAdvertiseInfoService.selectMallProductAdvertiseInfoList(new MallProductAdvertiseInfo());
        List<MallProductBrandInfoNew> mallProductBrandInfoNewList = mallProductBrandInfoMapper.selectMallProductBrandInfoNewList(new MallProductBrandInfoNew());
        List<MallProductInfoNew> productInfoList = mallProductInfoMapper.selectMallProductInfoNewList(new MallProductInfoNew());
        PageInfo<MallProductInfoNew> mallProductInfoNewPageInfo = newProductList(1,4);
        PageInfo<MallProductInfoNew> mallProductInfoNewPageInfo1 = newProductList(2,3);
        ProductHomeShowResponse productHomeShowResponse = new ProductHomeShowResponse();
        productHomeShowResponse.setAdvertiseList(mallProductAdvertiseInfos);
        productHomeShowResponse.setBrandList(mallProductBrandInfoNewList);
//        productHomeShowResponse.setHomeFlashPromotion(productInfoList);
        productHomeShowResponse.setHotProductList(mallProductInfoNewPageInfo1.getList());
        productHomeShowResponse.setNewProductList(mallProductInfoNewPageInfo.getList());

        return productHomeShowResponse;
    }

    /**
     * 新鲜好物列表
     */
    public PageInfo<MallProductInfoNew> newProductList(Integer pageNum, Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<MallProductInfoNew> infoNewList = mallProductInfoMapper.newProductList(pageNum,pageSize);
        PageInfo<MallProductInfoNew> mallProductInfoNewPageInfo = new PageInfo<>(infoNewList);
        return mallProductInfoNewPageInfo;
    }

    /**
     * 根据ID查询新商品品牌
     * @param id
     * @return
     */
    @Override
    public MallProductBrandInfoNew selectMallProductBrandInfoNewById(Long id) {
        return mallProductBrandInfoMapper.selectMallProductBrandInfoNewById(id);
    }

    /**
     * 获取品牌列表
     * @param pageNum
     * @param pageSize
     * @return
     */
    @Override
    public List<MallProductBrandInfoNew> hotProductList(Integer pageNum, Integer pageSize) {
        List<MallProductBrandInfoNew> mallProductBrandInfoNewList = mallProductBrandInfoMapper.hotProductList(pageNum,pageSize);
        return mallProductBrandInfoNewList;
    }


}
